#include <bits/stdc++.h>
using namespace std;
int n;
int a[100005];
// dp[i][0]表示不取当前数的和的最大值
// dp[i][1]表示取当前数的和的最大值
long long dp[2][2];
long long ans = 0; // 答案最小默认为0
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    // 当前位置不选，取上个位置选和不选的最大值
    dp[i&1][0] = max(dp[(i - 1)&1][0], dp[(i - 1)&1][1]);
    // 当前位置选，则上个位置不能选
    dp[i&1][1] = max(dp[(i - 1)&1][0], dp[(i - 1)&1][0] + a[i]);
    // 取最大值
    ans = max(ans, max(dp[i&1][0], dp[i&1][1]));
  }
  cout << ans;
  return 0;
}